home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
tool
/
i_o
/
i_o.bas
< prev
next >
Wrap
BASIC Source File
|
1995-07-26
|
6KB
|
180 lines
10010 CLEAR ,,,,,500*1024
10020 SCREEN 0 : MOUSE 0
10030 WINDOW(0,479)-(639,0)
10040 VIEW(0,0)-(639,479)
10050 WIDTH 80,25
10060 CONSOLE 3,22,0
10070 PALETTE 0,[ 0, 0, 0]
10080 PALETTE 1,[ 63, 63, 63]
10090 PALETTE 2,[127,127,127]
10100 PALETTE 3,[255,255,255]
10110 COLOR 7,,,4
10120 CLS
10130 DEF FONT "システム 12ドット"
10140 LOCATE 0,0 : PRINT " ADDRESS DATA"
10150 LOCATE 0,1 : PRINT " Hex Dec Hex Dec"
10160 LOCATE 40,0 : PRINT "実行キー : 一時停止"
10170 LOCATE 40,1 : PRINT "ESCキー : 終了"
10180 LOCATE 0,3
10190 READ S
10200 FOR I=S TO 65535
10210 T=0
10220 A=INP(I)
10230 PRINT SPC(4-LEN(HEX$(I)));HEX$(I);
10240 PRINT USING " #####";I;
10250 PRINT SPC(8-LEN(HEX$(A)));HEX$(A);
10260 PRINT USING " ###";A
10270 FOR J=0 TO 9
10280 B=INP(I)
10290 IF A><B THEN T=1
10300 NEXT
10310 IF T=1 THEN
10320 CLS 1
10330 PRINT SPC(4-LEN(HEX$(I)));HEX$(I);
10340 PRINT USING " #####";I;
10350 LOCATE 40,0 : PRINT "実行キー : 次のアドレス"
10360 LOCATE 40,1 : PRINT "取消キー : 表示モード変更 C : クリア"
10370 FOR J=15 TO 255 STEP 16
10380 LINE(64+J*2,262)-STEP(0,1),PSET,%3
10390 SYMBOL(50+J*2,276),STR$(J),3/4,3/4
10400 NEXT
10410 FOR U=0 TO 16
10420 FOR V=0 TO 16
10430 LINE(400,300+V*8)-STEP(128,0),PSET,%1
10440 NEXT
10450 LINE(400+U*8,300)-STEP(0,128),PSET,%1
10460 NEXT
10470 LINE(400,300)-(528,428),PSET,%2,B
10480 LINE(400,364)-(528,364),PSET,%2
10490 LINE(464,300)-(464,428),PSET,%2
10500 SYMBOL(376,370),"下位",3/4,3/4
10510 SYMBOL(394,310),"0",3/4,3/4
10520 SYMBOL(394,430),"F",3/4,3/4
10530 SYMBOL(452,299),"上位",3/4,3/4
10540 SYMBOL(403,299),"0",3/4,3/4
10550 SYMBOL(523,299),"F",3/4,3/4
10560 FOR J=0 TO 7
10570 SYMBOL(59+J*24,356),STR$(7-J),6/4,3/4
10580 LINE(64+J*24,320)-STEP(20,20),PSET,%3,B
10590 NEXT
10600 SYMBOL(622,255),"255",3/4,3/4
10610 SYMBOL(622,191),"191",3/4,3/4
10620 SYMBOL(622,127),"127",3/4,3/4
10630 SYMBOL(622, 63)," 63",3/4,3/4
10640 X=619 : YO=INP(I)
10650 IN$=""
10660 WHILE IN$><CHR$(&H0D)
10670 IN$=INKEY$
10680 X=X+1
10690 IF X=620 THEN
10700 X=0 : XO=-1
10710 LINE(0,0)-(619,255),PSET,%1,BF
10720 LINE(0,63)-STEP(619,0),PSET,%2
10730 LINE(0,127)-STEP(619,0),PSET,%2
10740 LINE(0,191)-STEP(619,0),PSET,%2
10750 LINE(0,255)-STEP(619,0),PSET,%2
10760 ENDIF
10770 Y=INP(I)
10780 FOR J=0 TO 7
10790 BIT=Y AND (2^(7-J))
10800 IF BIT THEN
10810 LINE(69+J*24,325)-STEP(10,10),PSET,%3,BF
10820 ELSE
10830 LINE(69+J*24,325)-STEP(10,10),PSET,%0,BF
10840 ENDIF
10850 NEXT
10860 U=403+(Y\16)*8
10870 V=303+(Y MOD 16)*8
10880 LINE(U,V)-STEP(2,2),PSET,%3,BF
10890 LINE(64,260)-(574,261),PSET,%1,BF
10900 LINE(64,260)-(64+Y*2,261),PSET,%3,BF
10910 IF L=0 THEN LINE(X,0)-(X,Y),PSET,%3
10920 IF L=1 THEN LINE(XO,YO)-(X,Y),PSET,%3
10930 IF L=2 THEN PSET(X,Y),%3
10940 XO=X : YO=Y
10950 LOCATE 16,3 : PRINT SPC(2-LEN(HEX$(Y)));HEX$(Y);
10960 PRINT USING " ###";Y
10970 LINE(U,V)-STEP(2,2),PSET,%0,B
10980 IF IN$=CHR$(&H18) THEN
10990 L=L+1
11000 IF L=3 THEN L=0
11010 ENDIF
11020 IF IN$="c" OR IN$="C" THEN
11030 FOR U=0 TO 15
11040 FOR V=0 TO 15
11050 PSET(404+U*8,304+V*8),%0
11060 NEXT
11070 NEXT
11080 LINE(0,0)-(619,255),PSET,%1,BF
11090 LINE(0,63)-STEP(619,0),PSET,%2
11100 LINE(0,127)-STEP(619,0),PSET,%2
11110 LINE(0,191)-STEP(619,0),PSET,%2
11120 LINE(0,255)-STEP(619,0),PSET,%2
11130 X=0 : XO=-1
11140 ENDIF
11150 WEND
11160 WHILE INKEY$><"" : WEND
11170 CLS 5
11180 LOCATE 40,0 : PRINT "実行キー : 一時停止 "
11190 LOCATE 40,1 : PRINT "ESCキー : 終了 "
11200 LOCATE 0,3
11210 ENDIF
11220 IN$=INKEY$
11230 IF IN$=CHR$(&H0D) THEN
11240 IN$=""
11250 WHILE NOT(IN$=CHR$(&H0D) OR IN$=CHR$(&H1B)) : IN$=INKEY$ : WEND
11260 ENDIF
11270 IF IN$=CHR$(&H1B) THEN I=65535
11280 NEXT
11290 '
11300 '
11310 '
11320 '検査開始アドレス
11330 '
11340 DATA 0
11350 '
11360 '
11370 '
11380 ' ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
11390 ' 説 明 書
11400 '__________________________________
11410 '
11420 '
11430 ' このプログラムは、I/Oアドレスを順次検査していき、データの変化が著
11440 ' しいアドレスについて各種表示方法でそのデータをリアルアイムに表示し
11450 ' ます。
11460 '
11470 ' 各種表示の説明
11480 '
11490 ' 0) I/Oアドレス
11500 '
11510 ' 画面左上のADDRESS欄に16進数(Hex)と10進数(Dec)で表示します。
11520 '
11530 ' 1) 数値
11540 '
11550 ' 画面左上のDATA欄に16進数(Hex)と10進数(Dec)で表示します。
11560 '
11570 ' 2) ビット
11580 '
11590 ' 1)数値 の下に箱が8個あり、データをビット状に表現します。0の場合
11600 ' は箱の中は黒く、1の場合は白くなります。箱の上の数字を x としたと
11610 ' き 2^x がその箱の値になります。
11620 '
11630 ' 3) ボード
11640 '
11650 ' 画面右上に、データ(16進数)の上位を横軸に、下位を縦軸にプロット
11660 ' していきます。データを残していくので、傾向を知ることができます。
11670 '
11680 ' 4) バー
11690 '
11700 ' 画面中程に、横方向にデータをバーで表示します。
11710 '
11720 ' 5) グラフ
11730 '
11740 ' 画面下に、データをグラフにして表示します。表示モードは次の3種類
11750 ' があり、Cキーで変更することができます。
11760 '
11770 ' ・棒グラフ
11780 ' ・折れ線グラフ
11790 ' ・点